Lietuvių

Atraskite „Redis“ klasterizavimą, siekdami didelio prieinamumo, mastelio keitimo ir našumo pasauliniu mastu paskirstytose programose. Sužinokite apie jo architektūrą, diegimą ir geriausias praktikas.

Redis klasterizavimas: jūsų atmintyje esančios duomenų bazės mastelio keitimas pasaulinėms programoms

Šiuolaikiniame sparčiai besikeičiančiame skaitmeniniame pasaulyje programoms reikalinga žaibiška prieiga prie duomenų ir gebėjimas apdoroti didžiulius srautus. Atmintyje esančios duomenų bazės (IMDB), tokios kaip „Redis“, tapo esminiais komponentais siekiant šio našumo. Tačiau vienas „Redis“ egzempliorius gali plėstis tik iki tam tikros ribos. Čia į pagalbą ateina „Redis“ klasterizavimas, siūlantis horizontalųjį mastelio keitimą, aukštą prieinamumą ir atsparumą gedimams jūsų pasauliniu mastu paskirstytoms programoms.

Kas yra „Redis“ klasterizavimas?

„Redis Cluster“ yra paskirstyta „Redis“ implementacija, kuri automatiškai skaido duomenis tarp kelių „Redis“ mazgų. Skirtingai nuo vieno egzemplioriaus „Redis“ sąrankų, „Redis“ klasteris gali apdoroti duomenų rinkinius, viršijančius vieno serverio atminties talpą. Jis taip pat užtikrina aukštą prieinamumą, replikuodamas duomenis tarp kelių mazgų, taip užtikrinant, kad jūsų programa išliktų veikianti, net jei kai kurie mazgai sutriktų.

Įsivaizduokite tai kaip didžiulės bibliotekos (jūsų duomenų) paskirstymą tarp kelių filialų („Redis“ mazgų) skirtinguose miestuose. Kiekviename filiale yra dalis knygų (duomenų), o jei vienas filialas užsidaro (mazgo gedimas), kiti filialai turi svarbiausių knygų kopijas (duomenų replikacija), kad galėtų toliau aptarnauti bendruomenę.

Pagrindiniai „Redis“ klasterizavimo privalumai

„Redis“ klasterio architektūra

„Redis“ klasterį sudaro šie komponentai:

„Redis“ klasterio sąranka

„Redis“ klasterio sąranka apima šiuos veiksmus:

  1. Įdiekite „Redis“: Įsitikinkite, kad „Redis“ yra įdiegtas visuose serveriuose, kurie bus klasterio dalis. Siekiant optimalaus našumo ir saugumo, rekomenduojama naudoti naujausią stabilią „Redis“ versiją.
  2. Konfigūruokite „Redis“ egzempliorius: Konfigūruokite kiekvieną „Redis“ egzempliorių, kad jis veiktų klasterio režimu. Tam reikia nustatyti parinktį cluster-enabled į yes faile redis.conf. Jums taip pat reikia sukonfigūruoti parinktis cluster-config-file ir cluster-node-timeout.
  3. Sukurkite klasterį: Naudokite komandą redis-cli --cluster create, kad sukurtumėte klasterį. Ši komanda priima „Redis“ egzempliorių sąrašą kaip argumentus ir automatiškai sukonfigūruoja juos, kad sudarytų klasterį. Komanda taip pat automatiškai priskirs maišos laiko tarpsnius pagrindiniams mazgams.
  4. Pridėkite replikos mazgus: Pridėkite replikos mazgus į klasterį naudodami komandą redis-cli --cluster add-node. Ši komanda priima replikos mazgo adresą ir pagrindinio mazgo adresą kaip argumentus. Komanda automatiškai sukonfigūruos replikos mazgą, kad jis replikuotų duomenis iš pagrindinio mazgo.
  5. Išbandykite klasterį: Patikrinkite, ar klasteris veikia teisingai, prisijungdami prie jo naudojant redis-cli ir atlikdami keletą pagrindinių operacijų, pavyzdžiui, raktų nustatymą ir gavimą. Jūs taip pat galite naudoti komandą redis-cli cluster info, kad peržiūrėtumėte klasterio būseną ir patikrintumėte, ar visi mazgai veikia tinkamai.

Pavyzdys: 6 mazgų „Redis“ klasterio kūrimas (3 pagrindiniai, 3 replikos)

Tarkime, turite 6 serverius su šiais IP adresais ir prievadais:

Viename iš serverių (pvz., 192.168.1.101) paleiskite šią komandą:

redis-cli --cluster create 192.168.1.101:7000 192.168.1.102:7001 192.168.1.103:7002 192.168.1.104:7003 192.168.1.105:7004 192.168.1.106:7005 --cluster-replicas 1

Ši komanda sukurs klasterį su 3 pagrindiniais mazgais ir 3 replikos mazgais, kur kiekvienas pagrindinis mazgas turės po vieną repliką.

Prisijungimas prie „Redis“ klasterio

Prisijungimas prie „Redis“ klasterio šiek tiek skiriasi nuo prisijungimo prie vieno „Redis“ egzemplioriaus. Jums reikia naudoti „Redis“ klientą, kuris palaiko klasterio režimą. Šie klientai paprastai naudoja klasterio magistralę, kad atrastų klasterio mazgus ir nukreiptų užklausas į atitinkamus pagrindinius mazgus.

Dauguma „Redis“ klientų turi integruotą palaikymą „Redis“ klasterizavimui. Jums paprastai reikės pateikti pradinių mazgų sąrašą (t. y. žinomus kai kurių klasterio mazgų adresus) klientui. Klientas tada naudos šiuos pradinius mazgus, kad atrastų likusią klasterio topologiją.

Pavyzdys: Prisijungimas prie „Redis“ klasterio naudojant Python (redis-py-cluster)

from rediscluster import RedisCluster

# Pradiniai mazgai yra mazgų sąrašas, kurį klientas naudos klasterio topologijai atrasti.
startup_nodes = [
 {"host": "192.168.1.101", "port": "7000"},
 {"host": "192.168.1.102", "port": "7001"},
 {"host": "192.168.1.103", "port": "7002"}
]

rc = RedisCluster(startup_nodes=startup_nodes, decode_responses=True)

rc.set("foo", "bar")
print(rc.get("foo"))

„Redis“ klasteris pasaulinėse programose

„Redis“ klasteris ypač tinka pasaulinėms programoms, kurioms reikalingas mažas vėlavimas ir didelis prieinamumas geografiškai paskirstytuose regionuose. Štai keletas įprastų naudojimo atvejų:

Geriausios „Redis“ klasterizavimo praktikos

Norėdami užtikrinti optimalų savo „Redis“ klasterio diegimo našumą ir patikimumą, atsižvelkite į šias geriausias praktikas:

Alternatyvos „Redis“ klasterizavimui

Nors „Redis“ klasterizavimas yra galingas sprendimas „Redis“ masteliui keisti, yra ir kitų alternatyvų, kurias verta apsvarstyti atsižvelgiant į jūsų specifinius poreikius:

Išvada

„Redis“ klasterizavimas suteikia patikimą ir keičiamo mastelio sprendimą atmintyje esantiems duomenims valdyti pasauliniu mastu paskirstytose programose. Suprasdami jo architektūrą, privalumus ir geriausias praktikas, galite panaudoti „Redis“ klasterizavimą kurdami didelio našumo, aukšto prieinamumo ir atsparias gedimams programas, atitinkančias šiuolaikinio skaitmeninio pasaulio reikalavimus. Nesvarbu, ar kuriate spartinančiosios atmintinės sluoksnį, sesijų valdymo sistemą ar realaus laiko analizės platformą, „Redis“ klasterizavimas gali padėti jums pasiekti našumo ir mastelio keitimo tikslus.